package com.qinghong.blog.service;

import com.qinghong.blog.entity.UserInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qinghong.blog.vo.ConditionVO;
import com.qinghong.blog.vo.EmailVO;
import com.qinghong.blog.vo.UserInfoVO;
import com.qinghong.blog.vo.UserRoleVO;
import org.springframework.web.multipart.MultipartFile;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author qinghong
 * @since 2021-12-06
 */
public interface IUserInfoService extends IService<UserInfo> {

    /**
     * 修改用户信息
     * @param userInfoVO
     */
    void updateUserInfo(UserInfoVO userInfoVO);

    /**
     * 更新上传用户头像
     * @param file
     * @return
     */
    String updateUserAvatar(MultipartFile file);

    /**
     * 绑定用户邮箱
     * @param emailVO
     */
    void saveUserEmail(EmailVO emailVO);

    /**
     * 修改用户角色
     * @param userRoleVO
     */
    void updateUserRole(UserRoleVO userRoleVO);

    /**
     * 修改用户禁用状态
     * @param userInfoId
     * @param isDisable
     */
    void updateUserDisable(Integer userInfoId, Integer isDisable);

    /**
     * 查看在线用户
     * @param conditionVO
     * @return
     */
    Object listOnlineUsers(ConditionVO conditionVO);

    /**
     * 下线用户
     * @param userInfoId
     */
    void removeOnlineUser(Integer userInfoId);
}
